关于c语言中匪夷所思的{}问题

来源:百度知道 编辑:UC知道 时间:2024/06/15 01:36:35
底下这个程序可以看出来结尾多了一个},{}不是应该成对出现的吗?
可是不加那个}反而报错,但是加个}程序执行明显不是我要的结果。
高手指教
#include<stdio.h>
void main()
{
int i;
int f[20]={1,1};
for(i=0;i<20;i++)
f[i]=f[i-2]+f[i-1];
for(i=0;i<20;i++)
{
if(i%5==0){printf("\n");
printf("%12d",f[i]);
}
printf("\n");
}}

兄台,你有点粗心.

if(i%5==0){printf("\n");//这一句没有"}"

if(i%5==0){printf("\n");//这一句多余‘{’,应为
if(i%5==0)printf("\n");

"}"的问题如楼上所说的,那一句少了一个"}"
至于你想得出的答案应该是 1 1 2 3 5 8``````6765这个数列吧..
那你的代码就有问题了
首先你声明了f[20]这个数列`是从f[0]到f[19]``但后面
"for(i=0;i<20;i++)
f[i]=f[i-2]+f[i-1];"这里,,如果i代入0的话就成为了
"f[0] =f[-2]+f[-1]"```f[-2]和f[-1]是不存在的,所以这里出了点错误````建议在中间加一段if文,改成
"for(i=0;i<20;i++)
{
if(i - 2 < 0)
{
f[i] = 1;
}
else
f[i]=f[i-2]+f[i-1];
}"
这样f[i]就从f[3]开始算了```应该能得出你想要的值```

老兄是你自己看错了……